package com.xpq.petserver.service;

import com.xpq.petserver.entity.R;
import com.xpq.petserver.entity.dto.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * 用户表相关服务
 * @author XPQ
 * @date 2022-04-23
 */
public interface UserService {
    /**
     * 注册用户服务
     * @param registerUserDTO 新用户信息
     * @return 注册成功失败提示信息
     */
    R registerUser(RegisterUserDTO registerUserDTO);

    /**
     * 用户登录服务
     * @param loginDTO 用户登录信息
     * @return
     */
    R login(LoginDTO loginDTO);

    /**
     * 获取用户信息
     * @param id 用户id
     * @return 用户头像地址
     */
    R getUserInfo(String id);

    /**
     * 上传修改用户头像
     * @param avatar 用户上传的头像文件
     * @param userId 用户的id
     * @return
     */
    R uploadAvatar(MultipartFile avatar, String userId);

    /**
     * 修改用户基本信息
     * @param userBasicInfoDTO 用户基本信息
     * @return
     */
    R updateUserBasicInfo(UserBasicInfoDTO userBasicInfoDTO);

    /**
     * 修改用户密码
     * @param updatePasswordDTO 用户id和原、新密码
     * @return
     */
    R updatePassword(UpdatePasswordDTO updatePasswordDTO);

    /**
     * 修改用户手机号码
     * @param updatePhoneDTO 用户id、新手机号、密码
     * @return
     */
    R updatePhone(UpdatePhoneDTO updatePhoneDTO);

}
